iT邦幫忙

2023 iThome 鐵人賽

DAY 4
1
Software Development

由淺入深來探討Elasticsearch,從基礎語法到底層相關原理系列 第 4

【Day 4】由淺入深來探討Elasticsearch - 快速啟動ES環境

  • 分享至 

  • xImage
  •  

在前幾天我們終於對於Elasticsearch有了初步的認識,是時候來建立我們的環境了

這邊先建立好單節點的環境就好,多節點的後面再來說

使用的話可以有幾種方式:

  1. 直接下載後啟動
  2. 使用微服務像docker啟動
  3. 使用官方的Elastic cloud服務

直接下載啟動的話,可以直接參考:
https://www.elastic.co/downloads/elasticsearch
下載一樣的kibana跟ES版本後,直接執行就可以,因為現在有自動設置security的功能所以直接啟用就好

而官方的Elastic cloud可以參考:
https://www.elastic.co/guide/en/welcome-to-elastic/current/getting-started-general-purpose.html
並且只要完成步驟1就好

接下來說docker的部分:
我自己個人的習慣是用docker compose,當然要用docker run也沒什麼問題

docker-compose.yml:

version: '3.7'

services:

  elasticsearch:
    image: elasticsearch:8.6.1
    container_name: it-es
    volumes:
      - ./data:/usr/share/elasticsearch/data
      - ./logs:/usr/share/elasticsearch/logs
      - ./plugins:/usr/share/elasticsearch/plugins
    ports:
      - 9200:9200
    environment:
      node.name: elasticsearch
      ES_JAVA_OPTS: -Xms1g -Xmx1g // 這邊通常不建議設置超過總記憶體的50%
      http.host: 0.0.0.0
      http.port: 9200
      transport.host: localhost
      ELASTIC_PASSWORD: ${ELASTIC_PASSWORD:-}
      discovery.type: single-node
      xpack.security.enabled: false // xpack 設定都先false
      xpack.security.http.ssl.enabled: false // xpack 設定都先false
    networks:
      - elk
    restart: unless-stopped

  kibana:
    image: kibana:8.6.1
    container_name: it-kibana
    ports:
      - 5601:5601
    environment:
      KIBANA_SYSTEM_PASSWORD: ${KIBANA_SYSTEM_PASSWORD:-}
    networks:
      - elk
    depends_on:
      - elasticsearch
    restart: unless-stopped

networks:
  elk:
    driver: bridge

volumes:
  elasticsearch:

如果有要使用ssl憑證之類的,通常也會再掛載一個certs資料夾,但是這邊都先跳過
並且在ES容器的port中,因為我們是單節點所以只用9200

9200通常就是用來跟外部連接,是Http協議
9300則是TCP協議,節點之間的通訊才需要用到

使用docker compose up -d啟動後,可以直接去看docker kibana容器的log
https://ithelp.ithome.com.tw/upload/images/20230906/20161866KYu2xthtsy.png

接著在瀏覽器輸入圖片中的url
因為都沒有設置任何security所以不用驗證enroll token也不用輸入密碼就可以直接進入

進入後我們點選左上角的圖示,會跳出許多選單,我們拉到最下面,找到
Management中的Dev Tools並點進去

此時我們要先來看整個叢集的健康,輸入我們的一條命令

GET /_cluster/health

https://ithelp.ithome.com.tw/upload/images/20230906/20161866D4EStTwubf.png
看到status是green就是成功了

叢集健康狀態|狀態|說明
------------- | ------------- |
red|primary shard有問題|叢集中有不能使用的primary shard,可能有索引的primary shard有問題,或是有node掛掉時,replica shard沒辦法轉成primary shard
yellow|primary shard沒問題但是replica shard有問題。|可以使用GET /_cat/shards?h=index,shard,prirep,state,unassigned.reason來看有哪些複製分片是沒有好好分配的
green|所有分片都沒問題|表示叢集中所有的索引都很健康,不存在缺失或是未分配的分片。

既然我們能寫點東西了,明天就開始來介紹最基礎有關索引跟文檔的語法~


上一篇
【Day 3】由淺入深來探討Elasticsearch - Elasticsearch的組成架構
下一篇
【Day 5】由淺入深來探討Elasticsearch - Index與Document的基礎語法
系列文
由淺入深來探討Elasticsearch,從基礎語法到底層相關原理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言